using System;

namespace Rhizome.Model
{
    public class IfNotEquals<T> : PropertyAndValueCriterionBase<T>
    {
        public IfNotEquals(string property) : base(property)
        {
        }

        public IfNotEquals()
        {
        }

        public IfNotEquals(string property, T value) : base(property, value)
        {
        }

        protected override sealed bool IsTrue(T value)
        {
            return Equals(value, Value) == false;
        }
    }

    public sealed class IfNotEquals : IfNotEquals<object>
    {
        public IfNotEquals(string property) : base(property)
        {
        }

        public IfNotEquals()
        {
        }

        public IfNotEquals(string property, object value) : base(property, value)
        {
        }
    }
}